home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Megahits 6
/
Megahits 6 (1995)(GTI - Rhein-Main-Soft)(DE)(Disc 2 of 2)[!].iso
/
time_ungepackt
/
time_361_390
/
time_387
/
megafish
/
rexx
/
aminet2mfish.mfish
next >
Wrap
Text File
|
1995-07-15
|
5KB
|
183 lines
/*
Convert Aminet CD Index
(W)1994 by Th. Omilian
for Mega/Fish Amiga
This is public domain.
$VER: Aminet2MFish 1.1 (5.3.1995)
*/
CSI = "9b"x
GREY = CSI||"30m"
BLACK = CSI||"31m"
WHITE = CSI||"32m"
BLUE = CSI||"33m"
BGREY = CSI||"40m"
BBLACK = CSI||"41m"
BWHITE = CSI||"42m"
BBLUE = CSI||"43m"
CLSWIN = CSI||"H"||CSI||"J"
CUP = CSI||"A"
CDOWN = CSI||"B"
CLEFT = CSI||"D"
CRIGHT = CSI||"C"
CLS = CSI||"J"
IF SHOW('L',"rexxsupport.library") = 0 THEN DO
CALL ADDLIB('rexxsupport.library',0,-30,0)
END
echo CLSWIN||BBLACK||WHITE||center("Aminet2MFish - Ein Aminet Index Konverter",60," ")
echo center("(C)1994-1995 Thomas Omilian - (Idee) ARo",60," ")
echo center("für MEGA/FISH AMIGA ab V1.08",60," ")
echo
options prompt BGREY||BLACK||"Pfad zur AminetCD (Return="||WHITE||"CD0:"||BLACK||")>"||BLACK||" "
pull pfad
options prompt WHITE||"<RETURN>"
if pfad = "" then pfad = "CD0:"
DiskName = showlist('v',,';')
IF DiskName = "" THEN EXIT
DiskName = TRANSLATE(DiskName,'_',' ')
DiskName = TRANSLATE(DiskName,' ',';')
anzdir = WORDS(STRIP(DiskName))
DiskNum = ""
DO anzdir
dirname = word(DiskName,1)
dirname = UPPER(dirname)
IF LEFT(dirname,6) = "AMINET" THEN DO
DiskNum = substr(dirname,7,1)
END
DiskName = DELWORD(DiskName,1,1);DiskName = STRIP(DiskName)
END
IF DiskNum = "" THEN DO
SAY "Keine Aminet-CD im Laufwerk";pull x;exit
END
OPTIONS PROMPT BGREY||BLACK||"Nummer der CD (RETURN=1) > "||WHITE
PULL DiskNum
OPTIONS PROMPT WHITE||"<RETURN>"
if exists(pfad) = 0 then do
echo CUP||CLS||BLACK||"Pfad "||WHITE||pfad||BLACK||" existiert nicht !"
pull x;exit
end
echo CUP||CLS||BLACK||"Erstelle AMINET-Verzeichnis für MFish..."
OACCESS = "A"
if exists("DATAAminet") = 0 then do
address command "MAKEDIR DATAAmiNet";OACCESS = "W"
end
IF open('MIndex',"DATAAminet/INDEX",OACCESS) = 0 then do
echo CLS||"Fehler beim Öffnen von INDEX"
pull x;exit
end
if open('MNames',"DATAAminet/NAMES",OACCESS) = 0 then do
echo CLS||"Fehler beim Öffnen von NAMES"
close('MIndex')
pull x;exit
end
if open('MData',"DATAAminet/DATA",OACCESS) = 0 then do
echo CLS||"Fehler beim Öffnen von DATA"
close('MIndex');close('MNames')
pull x;exit
end
if open('AIndex',pfad||"aminet/index","READ") = 0 then do
echo CLS||"Fehler beim Öffnen von "||pfad||"AMINET/INDEX"
close('MIndex');close('MNames');close('MData')
pull x;exit
end
IF OACCESS = "W" THEN DO
c = writech('MData',"MEGAFISHANET")
END
OPTIONS PROMPT BGREY||BLACK||"'README'-Dateien mit einlesen (RETURN=JA)"||WHITE
pull MeRead
OPTIONS PROMPT WHITE||"<RETURN>"
echo CUP||CLS||WHITE||"Bitte warten - Konvertierung läuft"
echo;echo BLACK
datapos = seek('MData',0,'e')
FileNum = 0
DiskNum = RIGHT(DiskNum,4,"0")
do while eof('AIndex') ~= 1
Z = readln('AIndex')
if Z ~= "" then do
echo CUP||left(Z,60)||CSI||"K"
if left(Z,1) ~= "|" then do
FileNum = FileNum + 1
MyName = left(Z,21)
MyName = strip(MyName)
KillPoint = LastPos('.',MyName)
if KillPoint ~= 0 then do
MyName = left(MyName,KillPoint-1)
end
MyMName = left(MyName,19," ")||"00"x
MyPath = delstr(Z,1,21)
MyText = MyPath
MyPath = word(MyPath,1)
MyText = delword(MyText,1,1)
KillPoint = Pos("K",MyText)
MyText = delstr(MyText,1,KillPoint)
ReadMe = left(MyText,1)
MyText = delstr(MyText,1,1)
MyReadMe = pfad||"aminet/"||MyPath||"/"||MyName||".readme"
NewText = ""
if MeRead = "" then do
DFail = Open('liesmich',MyReadMe,'READ')
if DFail = 1 then Do while eof('liesmich') ~= 1
X = readln('liesmich')
X = strip(X)
X = TRANSLATE(X," ",'09'x)
if X ~= "" then do;NewText = NewText||X||"00"x;end
end
c = close('liesmich')
end
MyText = MyText||"00"x
if NewText ~= "" then MyText = NewText
MyText = MyText||"Path: "||MyPath||"00"x
MyLen = length(MyText)
MyIndex = "00000000" /* leerer Schlüssel (hex) */
MyIndex = MyIndex||DiskNum /* Disk Nummer z.B "0004" (hex) */
MyPos = D2X(datapos)
MyPos = right(MyPos,8,"0")
MyLen = D2X(MyLen)
MyLen = right(MyLen,4,"0")
MyIndex = MyIndex||MyPos||MyLen
MyIndex = MyIndex||"0000" /* Flags leer (hex) */
MyIndex = X2C(MyIndex)
c = writech('MNames',MyMName)
c = writech('MIndex',MyIndex)
c = writech('MData',MyText)
DataPos = DataPos + length(MyText)
end
end
end
echo WHITE||"Konvertierung beendet - "||FileNum||" Einträge bearbeitet."
c = close('MIndex');c = close('MNames');c = close('MData');c = close('AIndex')
pull feddich
OPENDIR "Aminet"